package ipt.pru;

import ipt.enumeracion.Alcohol;
import ipt.enumeracion.Refrescos;
import ipt.enumeracion.Rol;
import ipt.enumeracion.Vaso;
import ipt.vo.Alumno;
import ipt.vo.Bebidas;


/**
 * Clase para probar Objetos Alumno
 * @author Alumno 5
 * @version 1.00
 *  
 */

public class ProbarAlumnos {

	/**
	 * Devuelve el nombre de dos alumnos y del segundo devuelve tambien la edad
	 * @param args
	 *  
	 */
	public static void main(String[] args) {
		/*
		System.out.println("Vamos a instarciar el primer obejto");
		//declarado pero sin inicializarlo
		Alumno [] aAlumnos;
		
		//inicializar el tamano del array a 17
		aAlumnos = Alumno.inicializarAlumnos();
		
			
		
		for ( int i=0; i < aAlumnos.length ; i++ ){
			
			//Alumno oAlumno = aAlumnos[i];
			//oAlumno.mostrarDatos();
			 aAlumnos[i].mostrarDatos();
			
			
		}	
		
		
		System.out.println(" metodo con argumento primitivo, pasado por valor ");
		int edad = 20;
		int edad2 = 0;
		System.out.println("la variable edad = " + edad );
		Alumno o = aAlumnos[9];		
		edad2 = o.incrementarEdad(edad);		
		System.out.println("la variable edad = " + edad + " la variable edad2 = " +edad2 );
		
		
		
		System.out.println(" metodo con argumento pasado por referencia ");
		Bebidas b = new Bebidas(Vaso.CUBATA, Alcohol.BACARDI, Refrescos.CHUS, 3);
		Bebidas b2;
		
		Bebidas b3 = (Bebidas) b.clone();
		
		b2 = o.incrementarHielos(b);
		
		System.out.println("la primera bebida tiene " + b.getNumHielos() + " hielos" );
		System.out.println("la segunda bebida tiene " + b.getNumHielos() + " hielos" );
		System.out.println("la tercera bebida tiene " + b3.getNumHielos() + " hielos" );
		
		
		
		System.out.println( "Fin del programa");
		*/
		
		//System.out.println("Ordenacion de Alumnos \n" );
		Alumno [] aAlumnos = Alumno.generaAlumnosPrueba(10000, 10);
		//Alumno [] aAlumnos = Alumno.inicializarAlumnos();
		
		System.out.println("Lanzando excepciones en los alumnos" );
		
		Alumno alumExp = aAlumnos[2];
		
		try {
			alumExp.setEdad(500);
		} catch (Exception e) {
			
			
			System.out.println( e.getMessage() );
			//e.printStackTrace();
		}
		
		
		/*
		System.out.println("Sin ordenar" );
		System.out.println("---------------------------------------------- " );
		//Alumno.mostrarListaAlumnos(aAlumnos);
		
		
		long time_start = System.currentTimeMillis();
		//Alumno.ordenarAlumnos(aAlumnos);		
		System.out.println("\n\n Ordenados" );		
		System.out.println("----------------------------------------------" );				
		//Alumno.mostrarListaAlumnos(aAlumnos);		
		long time_end = System.currentTimeMillis();
		System.out.println("La tarea ha tardado " + (time_end - time_start)	+ " milisegundos");
		
		
		long time_start2 = System.currentTimeMillis();
		Alumno.ordenarAlumnosMejorado(aAlumnos);		
		System.out.println("\n\n Ordenados (metodo mejorado)" );		
		System.out.println("----------------------------------------------" );				
		Alumno.mostrarListaAlumnos(aAlumnos);		
		long time_end2 = System.currentTimeMillis();
		System.out.println("La tarea ha tardado " + (time_end2 - time_start2)	+ " milisegundos");
		
		*/
			
		

	}

}
